// const toast = (options = {}) => {}

/**
 * @description 消息提示框
 * @param { Object } options 参数和 wx.showToast参数 保持一致
 */
const toast = ({ title = '数据加载中...', icon = 'none', duration = 2000, mask = true } = {}) => {
  wx.showToast({
    title, // 提示的内容
    icon, // 提示的图标，success(成功)，error(失败)，loading(加载)，none(不显示图标)
    duration, // 提示的延迟时间
    mask // 是否显示透明蒙层，防止触摸穿透
  })
}

/**
 * @description 模态对话框
 * @param { Object } options 参数和 wx.showModal 保持一致
 */
const model = (options = {}) => {
  // 在方法的内部要通过 Promise 返回用户的操作
  // 用户点击确定，resolve返回 true，反之则是 false
  return new Promise((resolve) => {
    // 默认的参数
    const defaultOpt = {
      title: '提示',
      content: '您确定执行改操作吗？',
      confirmColor: '#f3514f'
    }

    // 参数合并，重复的话后面的参数覆盖前面的
    // 将合并的参数赋值给一个空对象
    const opts = Object.assign({}, defaultOpt, options)

    wx.showModal({
      // 将合并的参数通过展开运算符赋值给 wx.showModal 对象
      ...opts,
      complete: ({ confirm, cancel }) => {
        confirm && resolve(true)
        cancel && resolve(false)
      }
    })
  })
}

// 将 toast model 方法挂载到wx全局对象身上
wx.toast = toast
wx.model = model

// 导出 toast model，可以进行按需导入
export { toast, model }
